/************************************************
 * Copyright (c) 2007 ~ 2009, 
 * All rights reserved.
 * Version   : 1.0
 * Author    : lengsh@gmail.com 
 * Date      : 2008.1.2
 ***********************************************/

#ifndef _PANDA_HELPER_H______
#define _PANDA_HELPER_H______

#include <string>
#include <map>
#include <iostream>
#include <pthread.h>
#include <string.h>
#include "antxdef.h"

using namespace std;
class Helper 
{
	protected:
		static Helper *_instance;
		bool  Startup(const char *filename);
	protected:
		string m_sConfFile;
////////////////////////////////////////////////////////////////////////////////
                int     m_izWindow;        // 第几个小窗口
                int     m_ipWindow;       
 // 组成大窗口的小窗口个数： 1970至今，以m_iDefaultTimer为刻度划分成小窗口
                volatile unsigned long m_gets;
                volatile unsigned long m_sets; 
////////////////////////////////////////////////////////////////////////////////
        public:
                static Helper *Instance(const char *conf = NULL);
                static void Release( bool bForce = false);
        protected:
                Helper();
                virtual ~Helper();
        public:
                int Update(const char *key, int klen, int flags, time_t expire, const char *data, int dlen);

                int Process( map <int, string > &keys, conn *c);
                int Process(const char *cmd, conn *c);

                int Timer(long time, int gap);
                int Check( void *args);
                char *Stats(char * ext_stats);
};


#endif 

